NodeJS Express Session Cookie
Contents
- Cookie
- Session
Cookie
Cookie(cookieParser)
app.use(express.cookieParser()); // This code is before app.use(app.router);
Retrieve cookie(index.js)
exports.index = function(req, res){
var msg = 'Hello!';
var cookie = req.cookies;
if (cookie != undefined && cookie.msg != undefined){
msg += '(saved:' + cookie.msg + ')';
}
res.render('index', { title: 'Express' , msg: msg
});
};
The current cookie is req.cookies
POST index_post.js
Save cookie
exports.index = function(req,res) {
var text1 = req.body.text1;
res.cookie('msg', text1, {maxAge:600000}); // Save Cookie
res.render('index',{
title:'Express',
msg: '[' + text1 + ']'
});
};
clearCookie
req.clearCookie('name');
Session
session How to use?
with cookie
app.use(express.cookieParser('secret','mycom_sercred_key'));
app.use(express.session({key:'session_id'}));
mycom_sercret_key : secret key
We cannot use session without cookie(secret key)
index.jade
Layout
extends layout
block content
h1= title
p Welcome to #{title}
p= msg
form(method='post',action='/')
table
tr
td
p ID:
td
input(type='text',name='name')
tr
td
p Password:
td
input(type='password' name='pass')
tr
td
td
input(type='submit')
index.js
exports.index = function(req, res){
var msg = '';
if (req.session.login != true) { // req.session
msg = 'Please signin';
}
else {
msg = 'ID:' + req.session.name;
}
res.render('index', { title: 'Express',
msg: msg});
};
index_post.js
// Dummy
var members = {
taeyeon:'kim',
yoona:'im'
};
exports.index = function(req,res) {
var name = req.body.name;
var pass = req.body.pass;
var msg = '';
var member_pass = members[name];
if (member_pass == pass) {
req.session.login = true; // set session property
req.session.name = name; // set session
msg ='"' + name + '" Login';
}
else {
req.session.login = false;
msg = 'Failed to login';
}
res.render('index',{
title:'Express',
msg: '[' + msg + ']'
});
};
Session Cookie
req.session.cookie, Set originalMaxAge session expire term
req.session.cookie.originalMaxAge = 600000;
